﻿/*
 * liuxl@c-platform.com
 */
MyDesktop = new Ext.app.App({
	init : function() {
		Ext.QuickTips.init();
	},

	getModules : function() {
		return [new MyDesktop.GridWindow(),new MyDesktop.CategoryWindow(),new MyDesktop.RecylceWindow(),
				new MyDesktop.BogusMenuModule1(),new MyDesktop.VisitLogsWindow(),new MyDesktop.SurveyWindow()];
	},

	// config for the start menu
	getStartConfig : function() {
		return {
			title : document.getElementById('webSiteDiv').innerHTML,
			iconCls : 'user',
			toolItems : [{
						text : '回收站',
						iconCls : 'recycle',
						scope : this,
						listeners : {
							"click" : function() {
								loadClass("Ext.ux.RecyclePanel", "recycle-win");
							}
						}
					}, '-', {
						text : '退出',
						iconCls : 'logout',
						scope : this,
						listeners : {
							"click" : handlerLogout
						}

					}]
		};
	}
});

// for example purposes
var publicCId = 0;  //全局栏目id
var windowIndex = 0;

/**
 * 成品庫管理（桌面）
 */
MyDesktop.GridWindow = Ext.extend(Ext.app.Module, {
			id : 'grid-win-category',
			init : function() {
				this.launcher = {
					text : '内容管理',
					iconCls : 'icon-grid',
					handler : this.createWindow,
					scope : this
				}
			},
			createWindow : function() {
				loadClass("Ext.ux.EntityViewPanel", "entity-view-win");
			}
		});


/**
 * 栏目管理（桌面）
 */
MyDesktop.CategoryWindow = Ext.extend(Ext.app.Module, {
			id : 'grid-win-lingdao',
			init : function() {
				this.launcher = {
					text : '栏目管理',
					iconCls : 'icon-grid',
					handler : this.createWindow,
					scope : this
				}
			},
			createWindow : function() {
				loadClass("Ext.ux.CategoryPanel", "category-view-win");
			}

		});
		

/**
 * 统计日志（桌面）
 */
MyDesktop.VisitLogsWindow = Ext.extend(Ext.app.Module, {
			id : 'grid-win-tongji',
			init : function() {
				this.launcher = {
					text : '统计日志',
					iconCls : 'icon-grid',
					handler : this.createWindow,
					scope : this
				}
			},
			createWindow : function() {
				loadClass("Ext.ux.VisitLogsPanel", "visit_logs-grid-win");
			}

		});

/**
 * 调查管理（桌面）
 */
MyDesktop.SurveyWindow = Ext.extend(Ext.app.Module, {
    id: 'grid-win-survey',
    init: function(){
        this.launcher = {
            text: '封面图片',
            iconCls: 'icon-grid',
            handler: this.createWindow,
            scope: this
        }
    },
    createWindow: function(){
   loadClass("Ext.ux.CategoryImgPanel","category-img-win");
    }
});

		/**
 * 回收站（桌面）
 */
MyDesktop.RecylceWindow = Ext.extend(Ext.app.Module, {
			id : 'grid-win-recycle',
			init : function() {
				this.launcher = {
					text : '回收站管理',
					iconCls : 'icon-grid',
					handler : this.createWindow,
					scope : this
				}
			},
			createWindow : function() {
				loadClass("Ext.ux.RecyclePanel", "recycle-win");
			}

		});

MyDesktop.BogusMenuModule1 = Ext.extend(Ext.app.Module, {
	init : function() {
		this.launcher = {
			text : '用户管理',
			iconCls : 'bogus',
			handler : function() {
				return false;
			},
			menu : {
				items : [{
							text : '管理员管理',
							iconCls : 'bogus',
							handler : function() {
								loadClass("Ext.ux.UserPanel", "user_grid_win");
							},
							scope : this,
							windowId : 6
						},{
							text : '注册用户管理',
							iconCls : 'bogus',
							handler : function() {
								loadClass("Ext.ux.RegisterUserPanel", "register_user_grid_win");
							}
						}, {
							text : '管理员日志管理',
							iconCls : 'bogus',
							handler : function() {
								loadClass("Ext.ux.AdminLogPanel",
										"log-grid-win");
							},
							scope : this,
							windowId : 2
						}]
			}
		}
	}
});
/**
 * form used
 * 
 * @param {Object}
 *            f
 * @param {Object}
 *            a
 */
function formError(f, a) {
	console.log(a);
	Ext.MessageBox.show({
				title : '提示信息',
				msg : a.result.errText,
				buttons : Ext.MessageBox.OK,
				fn : function() {
					if (a.result.mark == 0)
						location.href = 'login.jsp';
				},
				icon : Ext.MessageBox.WARNING
			});

}
/**
 * form used
 * 
 * @param {Object}
 *            f
 * @param {Object}
 *            a
 */
function ajaxError(response, request) {
	var result = response.responseText; // 拿到结果集，此时为字符串
	var json = Ext.util.JSON.decode(result); // 将字符串转换为json类型
	if (json.success != undefined && json.success == false) {
		Ext.MessageBox.show({
					title : '提示信息',
					msg : json.errText,
					buttons : Ext.MessageBox.OK,
					fn : function() {
						location.href = 'login.jsp';
					},
					icon : Ext.MessageBox.WARNING
				});
	}
}
/**
 * 检查权限
 * 
 * @param checkMethod
 * @return
 */
function checkPermission() {
	var rText = 0;
	Ext.Ajax.request({
				url : 'admin/user.jhtml?method=checkP',
				async : false,
				success : function(request) {
					rText = request.responseText;// 服务器端文本数据
				}
			});

	if (rText == 1) {
		return true;
	} else {
		Ext.MessageBox.show({
					title : '提示信息',
					msg : '您没有些权限!请联系管理员',
					buttons : Ext.MessageBox.OK,
					icon : Ext.MessageBox.WARNING
				});

		return false;
	}

}
/**
 * callback used
 * 
 * @param {Object}
 *            store
 * @param {Object}
 *            params
 * @param {Object}
 *            success
 */
function listError(store, params, success) {
	if (!success) {
		if (this.reader.jsonData != undefined) {
			var jsonData = this.reader.jsonData;

			Ext.MessageBox.show({
						title : '提示信息',
						msg : jsonData.errText,
						buttons : Ext.MessageBox.OK,
						fn : function() {
							if (jsonData.mark == 0)
								location.href = '/login.jsp';
						},
						icon : Ext.MessageBox.WARNING
					});
		} else {
			Ext.Msg.alert('提示信息', '内容为空');
		}

	}
};
/**
 * 退出管理系统
 */
function handlerLogout() {
	Ext.Ajax.request({
				url : 'admin/user.jhtml?method=loginOut',
				success : function(response, options) {
					Ext.MessageBox.show({
								title : '提示信息',
								msg : '谢谢使用管理后台！',
								buttons : Ext.MessageBox.OK,
								icon : Ext.MessageBox.INFO
							});
					location.href = 'login.jsp';
				}
			});

	// Ext.MessageBox.alert("提示", "登出成功，谢谢您的使用");
};
/**
 * 动态加载js
 * 
 * @params jsName js名称
 * @params windowId js内部window窗口id
 * @return Object
 */
function loadClass(jsName, windowId) {
	var jsEntity = Ext.getCmp(windowId);
	if (jsEntity) {
		jsEntity.show();
	} else {
		try {
			var jsurl = "static/js/ext/ux/" + jsName + ".js";
			Ext.Ajax.request({
						url : jsurl,
						success : function(request) {
							try {
								eval(request.responseText);
								eval(jsName + "();");
							} catch (e) {
								alert(e);
							}
						}
					});
		} catch (e) {

			alert(e);
		}

	}
}
/**
 * 动态加载js
 * 
 * @params jsName js名称
 * @params params js内部参数
 * @return Object
 */
function loadClassReturnEntity(jsName, params) {
	var cPanelEntity = null;
	try {
		var jsurl = "static/js/ext/ux/" + jsName + ".js";
		Ext.Ajax.request({
					url : jsurl,
					async : false,
					success : function(request) {
						try {
							eval(request.responseText);
							cPanelEntity = eval(jsName+"("
									+ params + ");");
						} catch (e) {
							alert(e);
						}
					}
				});
	} catch (e) {

		alert(e);
	}
	return cPanelEntity;

}
/**
 * grid rowclick 事件
 * 
 * @param grid
 *            列表对象
 * @param rowIndex
 *            行索引
 * @param e
 *            event事件对象
 * @param itemId
 *            列属性
 * @param tooBarItemId
 *            操作栏按钮id
 * @param textStr
 *            更换文本
 */
function gridrowClick(grid, rowIndex, e, itemId, tooBarItemId, textStr,
		textStr1) {

	var record = grid.getStore().getAt(rowIndex); // 行对象
	var tb = Ext.getCmp(tooBarItemId); // tooBarItem对象

	var status = record.get(itemId);
	if (status == '1') {
		tb.setText(textStr);
	} else {
		tb.setText(textStr1);
	}

}
/**
 * 共用alert弹出方法
 * 
 * @param title
 *            弹出标题
 * @param msg
 *            弹出的消息
 * @param iconClass
 *            消息图标类
 *            Ext.MessageBox.WARNING,Ext.MessageBox.QUESTION,Ext.MessageBox.ERROR,Ext.MessageBox.INFO
 */
function getAlertMessage(title, msg, iconClass) {
	Ext.MessageBox.show({
				title : title,
				msg : msg,
				buttons : Ext.MessageBox.OK,
				icon : iconClass,
				setZIndex : Ext.emptyFn,
				manager : MyDesktop.getDesktop().getManager()
			});
}
/**
 * 
 * @param ds
 *            數據集合
 * @param {}
 *            columnId 列id
 * @param {}
 *            mark 標記0：發現就反回，1：檢查是否到num值
 * @param {}
 *            num 上限數量
 */
function checkRow(ds, columnId, mark, num) {

	/** 遍历store所有数据，统计帧头条记录 */
	var records = ds.getRange();
	if (mark == 0) {
		for (i = 0; i < records.length; i++) {
			if (records[i].get(columnId) == "1") {
				return true;
			}

		}
	} else {
		var count = 1;
		for (i = 0; i < records.length; i++) {
			if (records[i].get(columnId) == "1") {
				count++;
				if (count > num) {
					return true;
				}

			}

		}
	}
	return false;
}
function getStartPanel(id) {
	var start = {
		id : id,
		title : '欢迎使用',
		layout : 'fit',
		bodyStyle : 'padding:25px',
		html : '<img src="static/images/app/bg.jpg"/>',
		closable : false
	};
	return start;
}

function golbalBBar(ds, pageSize) {
	return new Ext.PagingToolbar({
				pageSize : pageSize,
				store : ds,
				displayInfo : true
			});
}

function loadDsByStart(ds, start, limit) {

	ds.load({
				params : {
					start : start,
					limit : limit
				}
			});
}
function loadDs(ds, limit) {

	ds.load({
				params : {
					start : 0,
					limit : limit
				}
			});
}
/**
 * 获取数据集合
 * 
 * @param {}
 *            url
 * @param {}
 *            _jsonReader
 * @return {}
 */
function getDs(url, _jsonReader) {
	var ds = new Ext.data.Store({
				proxy : new Ext.data.HttpProxy({
							url : url
						}),
				reader : _jsonReader
			});
	return ds;
}
// 定义一个工具函数 来显示是否置顶
var isTopRender = function(value) {
	if (value == 1) {
		return '<span style="color:green;font-weight:bold;">是</span>';
	} else {
		return '<span style="color:red;font-weight:bold;">否</span>';
	}
}

// 定义各个工具函数 显示展示位置
var showLocationRender = function(value) {
	if (value == 1) {
		return '<span style="color:green;font-weight:bold;">首页top</span>';
	} else if(value == 2){
		return '<span style="color:green;font-weight:bold;">新华热推</span>';
	} else if(value == 3){
		return '<span style="color:green;font-weight:bold;">首页中间或左侧</span>';
	}else{
		return '<span style="color:red;font-weight:bold;">暂未设置</span>';
	}
}

var aaRenderer = function(value){
	alert(11);
	//alert(value);
}